Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless communication devices, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, video gaming devices, video game consoles, cellular or satellite radio telephones, and the like. Digital video devices implement video compression techniques, such as MPEG-2, MPEG-4, or H.264/MPEG-4, Part 10, commonly called Advanced Video Coding (AVC), to transmit and receive digital video more efficiently. Video compression techniques perform spatial and temporal prediction to reduce or remove redundancy inherent in video sequences.
In video coding, video compression typically includes spatial prediction and/or motion estimation and motion compensation to generate a prediction video block. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy among video blocks within a given video frame. Spatial prediction may be performed for a number of different intra-coding block types, such as Intra 16×16 block types, Intra 8×8 block types, and Intra 4×4 block types in the case of H.264/MPEG-4 Part 10 AVC. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy among video blocks of successive video frames of a video sequence. Temporal prediction may also be performed for a number of different inter-coding block types, such as Inter 16×16, Inter 16×8, Inter 8×16, Inter 8×8, Inter 8×4, Inter 4×8, and Inter 4×4 in the case of H.264/MPEG-4 Part 10 AVC.
After spatial or temporal prediction, a block of residual information is generated by subtracting the prediction video block from the original video block that is being coded. Thus, the residual information quantifies the differences between the prediction video block and the original block. The video encoder encodes the residual information of the block along with header information of the block. The header information of the block may indicate the block type of the current video block as well as additional information associated with the current video block, such as a prediction mode, a luma coded block pattern (CBP), a chroma CBP, one or more motion vectors and the like. The video encoder generally encodes the residual information and the header information using arithmetic codes, variable length codes (VLCs), fixed length codes or a combination thereof. Examples include context-adaptive binary arithmetic coding (CABAC) and context-adaptive variable length coding (CAVLC). A video decoder performs inverse operations to reconstruct the encoded video, using the header information and residual information for each of the blocks.